NOFY023 - podzim 2021

Speciální teorie relativity

Vzhled letící tyče

Pavel Krtouš

Tento notebook obsahuje animace dokumentující šíření světelného signálu od pohybujícího se tělesa k pozorovateli.

Před prohlížením animací je potřeba spustit blok definic níže. Je potřeba ho celý zvýraznit (např. kliknutím na druhou svislou linii na pravém okraji vedle nadpisu Definice) a spustit (pravý Enter či Shift+Enter). Po té je již možné animace používat (tj. není potřeba je všechny znovu spouštět). 
Notebook je připraven jako prezentace a je možné spustit prostředí SlideShow (menu Format>ScreenEnvironment>SlideShow). Není to však nutností.

Definice

rot[α_]:={{1,0,0},{0,Cos[α],Sin[α]},{0,-Sin[α],Cos[α]}}

boost[β_]:={{Cosh[β],Sinh[β],0},{Sinh[β],Cosh[β],0},{0,0,1}}

rot[-α].boost[β].rot[α]//Simplify

boost[β_,α_]:=Evaluate[%]

lor[β_,α_:0][p_]:=boost[β,α].p

embed[β_,α_:0][p_]:=RotateLeft[lor[β,α]@p]

tret[x_,y_,β_,α_:0][t_]:=Cosh[β]t+Sinh[β]Cos[α]x+Sinh[β] Sin[α]y-(Sqrt[(((Cosh[β]t+Sinh[β]Cos[α]x+Sinh[β] Sin[α]y))^2)-(t^2)+(x^2)+(y^2)])

spl[t_,x_,y_,β_,α_]:={Cosh[β]t,Sinh[β]Cos[α]t+x,Sinh[β]Sin[α]t+y}

tooltip[s_][e_,l_]:=If[s,Tooltip[e,l],e]

Vzhled objektů

Vzhled objektu v relativistické situaci je výsledkem několika různých efektů. Vedle relativistické změně rozměrů přispívá též fakt, že světelný signál se od tělesa k pozorovateli šíří konečnou rychlostí a pozorovatel tak vidí těleso v dřívějším čase. Jelikož se se těleso vůči pozorovateli pohybuje, uplatňuje se aberace. Barvu objektu ovlivňuje Doplerův efekt, ale i pohyb zdroje světla.

V tomto notebooku naleznete animaci dokumentující retardaci vyslaného světelného signálu a šíření světelného signálu od letící tyče.

Retardace signálu

With[{tmax=5,rmax=4,prf=1.5},Manipulate[
Show[
{
Graphics3D[{
{Blue,Thick,Line[embed[βe,αe]/@{{-2tmax,0,yp},{2tmax,0,yp}}]},
If[showPo,
{Blue,Thin,
Line[embed[βe,αe]/@{{tp,-rmax,0},{tp,rmax,0}}],Line[embed[βe,αe]/@{{tp,0,-rmax},{tp,0,rmax}}],
Opacity[0.1,Blue],EdgeForm[{Blue,Thin}],
Polygon[embed[βe,αe]/@{{tp,-rmax,-rmax},{tp,rmax,-rmax},{tp,rmax,rmax},{tp,-rmax,rmax}}]},
{}],
{Darker[Green],Thick,Line[embed[βe,αe]@*lor[β,α]/@{{-2tmax,0,0},{2tmax,0,0}}]},
If[showTo,
{Darker[Green],Thin,
Line[embed[βe,αe]@*lor[β,α]/@{{tt,-rmax,0},{tt,rmax,0}}],Line[embed[βe,αe]@*lor[β,α]/@{{tt,0,-rmax},{tt,0,rmax}}],
Opacity[0.1,Green],EdgeForm[{Darker[Green],Thin}],
Polygon[embed[βe,αe]@*lor[β,α]/@{{tt,-rmax,-rmax},{tt,rmax,-rmax},{tt,rmax,rmax},{tt,-rmax,rmax}}]},
{}],
If[showPsk,
{Red,Thick,Line[embed[βe,αe]/@{{tsk,0,yp},tret[0,-yp,β,α][tsk]{Cosh[β],Sinh[β]Cos[α],Sinh[β]Sin[α]}}]},
{}]
}],
If[showPsk,
ParametricPlot3D[embed[βe,αe]@{tsk-τ,τ Cos[φ],yp+τ Sin[φ]},{τ,0,tmax},{φ,-(99/100)π,(101/100)π},
PlotStyle->{Opacity[0.1,Red]},BoundaryStyle->None,Mesh->{0,Table[n (π/12),{n,-11,12}]},MeshStyle->{{Thin,Lighter[Red,0.7]}}],
Graphics3D[{}]
]
},
Boxed->False,Axes->False,PlotRange->{prf{-rmax,rmax},prf{-1.25rmax,rmax},prf{-tmax,tmax}},
ViewPoint->{1.4,-2.95,0.9},ImageSize->{Automatic,800}
],
Dynamic@Grid[{
{tooltip[showtt][Control[{{showPsk,True,""},{True,False}}],"zobrazovat světelný kužel"],
tooltip[showtt][Control[{{tsk,-tmax,"(Subscript[t, sk])"},-tmax,prf tmax}],"čas pozorování"],
tooltip[showtt][Control[{{yp,-2,"(Subscript[y, P])"},-rmax,rmax}],"vzdálenost zdroje od pozorovatele\n  v okamžik nejbližšího přiblížení"],,,
Tooltip[Control[{{showtt,True,"?"},{True,False}}],"zobrazovat vysvětlivky při najetí myši na ovládací prvek"],SpanFromLeft},
{tooltip[showtt][Control[{{showPo,False,""},{True,False}}],"zobrazovat rovinu současnosti pozorovatele"],
tooltip[showtt][Control[{{tp,0,"(Subscript[t, P])"},-tmax,tmax}],"čas roviny současnosti pozorovatele"],
tooltip[showtt][Control[{{βe,0,"(Subscript[β, e])"},-4,4}],"rapidita pozorovatele vůči soustavě diagramu"],
tooltip[showtt][Control[{{βe,0,""},{0},ControlType->Setter}],"vynulování rapidity pozorovatele vůči diagramu"],
tooltip[showtt][Control[{{αe,0,"(Subscript[α, e])"},-π,π}],"směr rychlosti soustavy pozorovatele vůči diagramu"],
tooltip[showtt][Control[{{αe,0,""},{-(π/2),0,(π/2)},ControlType->Setter}],"směr rychlosti soustavy pozorovatele vůči diagramu"],
tooltip[showtt][Button["P",βe=0;αe=0],"soustava pozorovatele jako soustava diagramu"],
tooltip[showtt][Button["Z",βe=-β;αe=-α],"soustava zdroje jako soustava diagramu"]},
{tooltip[showtt][Control[{{showTo,False,""},{True,False}}],"zobrazovat rovinu současnosti zdroje"],
tooltip[showtt][Control[{{tt,0,"(Subscript[t, Z])"},-tmax,tmax}],"čas roviny současnosti zdroje"],
tooltip[showtt][Control[{{β,0.4},-4,4}],"rapidita zdroje vůči pozorovateli"],
tooltip[showtt][Control[{{β,0.4,""},{0},ControlType->Setter}],"vynulování rapidity zdroje vůči pozorovateli"],
tooltip[showtt][Control[{{α,0},-π,π}],"směr rychlosti zdroje vůči soustavě pozorovatele"],
tooltip[showtt][Control[{{α,0,""},{-(π/2),0,(π/2)},ControlType->Setter}],"směr rychlosti zdroje vůči soustavě pozorovatele"]}
},Alignment->{Right,Automatic}]
]]

Letící tyč

With[{tmax=5,rmax=4,prf=1.5},Manipulate[
Show[
{
Graphics3D[{
{Blue,Thick,Line[embed[βe,αe]/@{{-2tmax,0,yp},{2tmax,0,yp}}]},
If[showPo,
{Blue,Thin,
Line[embed[βe,αe]/@{{tp,-rmax,0},{tp,rmax,0}}],Line[embed[βe,αe]/@{{tp,0,-rmax},{tp,0,rmax}}],
Opacity[0.1,Blue],EdgeForm[{Blue,Thin}],
Polygon[embed[βe,αe]/@{{tp,-rmax,-rmax},{tp,rmax,-rmax},{tp,rmax,rmax},{tp,-rmax,rmax}}]},
{}],
{Darker[Green],Thick,
Line[embed[βe,αe]/@{spl[-2tmax,-ℓ Cos[φ],-ℓ Sin[φ],β,α],spl[2tmax,-ℓ Cos[φ],-ℓ Sin[φ],β,α]}],
Line[embed[βe,αe]/@{spl[-2tmax,ℓ Cos[φ],ℓ Sin[φ],β,α],spl[2tmax,ℓ Cos[φ],ℓ Sin[φ],β,α]}],
Opacity[0.3,Green],EdgeForm[None],
Polygon[embed[βe,αe]/@{spl[-2tmax,-ℓ Cos[φ],-ℓ Sin[φ],β,α],spl[2tmax,-ℓ Cos[φ],-ℓ Sin[φ],β,α],spl[2tmax,ℓ Cos[φ],ℓ Sin[φ],β,α],spl[-2tmax,ℓ Cos[φ],ℓ Sin[φ],β,α]}]},
If[showTo,
{Darker[Green],Thin,
Line[embed[βe,αe]@*lor[β,α]/@{{tt,-rmax,0},{tt,rmax,0}}],Line[embed[βe,αe]@*lor[β,α]/@{{tt,0,-rmax},{tt,0,rmax}}],
Opacity[0.1,Green],EdgeForm[{Darker[Green],Thin}],
Polygon[embed[βe,αe]@*lor[β,α]/@{{tt,-rmax,-rmax},{tt,rmax,-rmax},{tt,rmax,rmax},{tt,-rmax,rmax}}]},
{}],
If[showPsk,
{Red,Thick,
Line[embed[βe,αe]/@{{tsk,0,yp},spl[tret[-ℓ Cos[φ],-ℓ Sin[φ]-yp,β,α][tsk],-ℓ Cos[φ],-ℓ Sin[φ],β,α]}],
Line[embed[βe,αe]/@{{tsk,0,yp},spl[tret[ℓ Cos[φ],ℓ Sin[φ]-yp,β,α][tsk],ℓ Cos[φ],ℓ Sin[φ],β,α]}]},
{}]
}],
If[showPsk,{
ParametricPlot3D[embed[βe,αe]@{tsk-τ,τ Cos[φ],yp+τ Sin[φ]},{τ,0,tmax},{φ,-(99/100)π,(101/100)π},
PlotStyle->{Opacity[0.1,Red]},BoundaryStyle->None,Mesh->{0,Table[n (π/12),{n,-11,12}]},MeshStyle->{{Thin,Lighter[Red,0.7]}}],
ParametricPlot3D[embed[βe,αe][{tsk,0,yp}+ττ( spl[tret[ℓℓ Cos[φ],ℓℓ Sin[φ]-yp,β,α][tsk],ℓℓ Cos[φ],ℓℓ Sin[φ],β,α]-{tsk,0,yp})],{ττ,0,1},{ℓℓ,-ℓ,ℓ},
PlotStyle->{Opacity[0.4,Red]},BoundaryStyle->None,Mesh->None]
},
Graphics3D[{}]
]
},
Boxed->False,Axes->False,PlotRange->{prf{-rmax,rmax},prf{-1.2rmax,rmax},prf{-tmax,tmax}},
ViewPoint->{1.4,-2.95,0.9},ImageSize->{Automatic,800}
],
Dynamic@Grid[{
{tooltip[showtt][Control[{{showPsk,True,""},{True,False}}],"zobrazovat světelný kužel"],
tooltip[showtt][Control[{{tsk,-tmax,"(Subscript[t, S])"},-tmax,2 tmax}],"čas pozorování"],
tooltip[showtt][Control[{{yp,-2,"(Subscript[y, P])"},-rmax,rmax}],"vzdálenost tyče od pozorovatele\n  v okamžik nejbližšího přiblížení"],,,,
Tooltip[Control[{{showtt,True,"?"},{True,False}}],"zobrazovat vysvětlivky při najetí myši na ovládací prvek"],SpanFromLeft},
{,,
tooltip[showtt][Control[{{ℓ,0.25},0,1}],"délka tyče"],,
tooltip[showtt][Control[{{φ,0},-π,π}],"orientace tyče"],
tooltip[showtt][Control[{{φ,0,""},{-(π/2),0,(π/2)},ControlType->Setter}],"orientace tyče podél a kolmo na pohyb"]},
{tooltip[showtt][Control[{{showPo,False,""},{True,False}}],"zobrazovat rovinu současnosti pozorovatele"],
tooltip[showtt][Control[{{tp,0,"(Subscript[t, P])"},-tmax,tmax}],"čas roviny současnosti pozorovatele"],
tooltip[showtt][Control[{{βe,0,"(Subscript[β, e])"},-4,4}],"rapidita pozorovatele vůči soustavě diagramu"],
tooltip[showtt][Control[{{βe,0,""},{0},ControlType->Setter}],"vynulování rapidity pozorovatele vůči diagramu"],
tooltip[showtt][Control[{{αe,0,"(Subscript[α, e])"},-π,π}],"směr rychlosti soustavy pozorovatele vůči diagramu"],
tooltip[showtt][Control[{{αe,0,""},{-(π/2),0,(π/2)},ControlType->Setter}],"směr rychlosti soustavy pozorovatele vůči diagramu"],
tooltip[showtt][Button["P",βe=0;αe=0],"soustava pozorovatele jako soustava diagramu"],
tooltip[showtt][Button["T",βe=-β;αe=-α],"soustava tyče jako soustava diagramu"]},
{tooltip[showtt][Control[{{showTo,False,""},{True,False}}],"zobrazovat rovinu současnosti tyče"],
tooltip[showtt][Control[{{tt,0,"(Subscript[t, T])"},-tmax,tmax}],"čas roviny současnosti tyče"],
tooltip[showtt][Control[{{β,0.4},-4,4}],"rapidita tyče vůči pozorovateli"],
tooltip[showtt][Control[{{β,0.4,""},{0},ControlType->Setter}],"vynulování rapidity tyče vůči pozorovateli"],
tooltip[showtt][Control[{{α,0},-π,π}],"směr rychlosti tyče vůči soustavě pozorovatele"],
tooltip[showtt][Control[{{α,0,""},{-(π/2),0,(π/2)},ControlType->Setter}],"směr rychlosti tyče vůči soustavě pozorovatele"]}
},Alignment->{{Center,Right,Right,Left,Right,Left},Automatic}]
]]